gamrand<-function(alpha,lambda){
  if (alpha>1)
  {
    d=alpha-1/3;
    c=1/sqrt(9*d); 
    flag=1;
    while (flag){
      Z=rnorm(1);
      if (Z>(-1/c)){
        V=(1+c*Z)^3;
        U=runif(1);
        flag=log(U)>(0.5*Z^2+d-d*V+d*log(V));  
      }
    }
    x=d*V/lambda;
  }
  else{
    x=gamrand(alpha+1,lambda);
    x=x*runif(1)^(1/alpha);
  }
};
